home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / compiler / misc.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  3KB  |  114 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. import types
  5.  
  6. def flatten(tup):
  7.     elts = []
  8.     for elt in tup:
  9.         if type(elt) == types.TupleType:
  10.             elts = elts + flatten(elt)
  11.             continue
  12.         elts.append(elt)
  13.     
  14.     return elts
  15.  
  16.  
  17. class Set:
  18.     
  19.     def __init__(self):
  20.         self.elts = { }
  21.  
  22.     
  23.     def __len__(self):
  24.         return len(self.elts)
  25.  
  26.     
  27.     def __contains__(self, elt):
  28.         return self.elts.has_key(elt)
  29.  
  30.     
  31.     def add(self, elt):
  32.         self.elts[elt] = elt
  33.  
  34.     
  35.     def elements(self):
  36.         return self.elts.keys()
  37.  
  38.     
  39.     def has_elt(self, elt):
  40.         return self.elts.has_key(elt)
  41.  
  42.     
  43.     def remove(self, elt):
  44.         del self.elts[elt]
  45.  
  46.     
  47.     def copy(self):
  48.         c = Set()
  49.         c.elts.update(self.elts)
  50.         return c
  51.  
  52.  
  53.  
  54. class Stack:
  55.     
  56.     def __init__(self):
  57.         self.stack = []
  58.         self.pop = self.stack.pop
  59.  
  60.     
  61.     def __len__(self):
  62.         return len(self.stack)
  63.  
  64.     
  65.     def push(self, elt):
  66.         self.stack.append(elt)
  67.  
  68.     
  69.     def top(self):
  70.         return self.stack[-1]
  71.  
  72.     
  73.     def __getitem__(self, index):
  74.         return self.stack[index]
  75.  
  76.  
  77. MANGLE_LEN = 256
  78.  
  79. def mangle(name, klass):
  80.     if not name.startswith('__'):
  81.         return name
  82.     
  83.     if len(name) + 2 >= MANGLE_LEN:
  84.         return name
  85.     
  86.     if name.endswith('__'):
  87.         return name
  88.     
  89.     
  90.     try:
  91.         i = 0
  92.         while klass[i] == '_':
  93.             i = i + 1
  94.     except IndexError:
  95.         return name
  96.  
  97.     klass = klass[i:]
  98.     tlen = len(klass) + len(name)
  99.     if tlen > MANGLE_LEN:
  100.         klass = klass[:MANGLE_LEN - tlen]
  101.     
  102.     return '_%s%s' % (klass, name)
  103.  
  104.  
  105. def set_filename(filename, tree):
  106.     '''Set the filename attribute to filename on every node in tree'''
  107.     worklist = [
  108.         tree]
  109.     while worklist:
  110.         node = worklist.pop(0)
  111.         node.filename = filename
  112.         worklist.extend(node.getChildNodes())
  113.  
  114.